// pages/productlist/productlist.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
      baseURL:wx.baseURL,
      total:0,
      rows:[],
      brandSelected:{},//已选品牌
      brands:[],
      brandVisible:false,
      query:{

          pageNum:1,
          pageSize:10,
          key:'',//搜索关键字
          sorted:0,
          brandIds:''
      },

  },
  //清空
  clearBrand(){
      this.setData({
          brandSelected:{}
      })   
  },
  //按品牌搜索
  confimBrand(){
      let brandIds = []
      for(let key in this.data.brandSelected){//取出选中的品牌id
          if(key && this.data.brandSelected[key]) brandIds.push(key)
      }
      this.data.query.brandIds = brandIds.join(',')
      this.refresh(() =>{
          this.setData({
              brandVisible:false
          })
      })
  },
  //修改排序方式
  changeSorted(e){
      let sorted = e.currentTarget.dataset.sorted
      this.setData({
          'query.sorted':sorted
      })
      //刷新
      this.refresh()
  },
  //输入搜索关键字
  inputkey(e){
      this.data.query.key = e.detail.value
  },
  //重新加载
  refresh(next){
      this.data.query.pageNum = 1
      this.data.rows = []
      this.data.total = 0
      this.getList(next)
  },
  //切换品牌选中状态
  changeBrand(e){
      let brandSelected = this.data.brandSelected
      let id = e.currentTarget.dataset.id
      brandSelected[id] = !brandSelected[id]//取反 切换选中状态
      this.setData({
          brandSelected
      })
  },    
  //切换品牌弹窗
  changesBrandVisible(){
      let brandSelected = {}
      if(!this.data.brandVisible && this.data.query.brandIds){//打开品牌弹框
          //按上次选中结果初始化已选中品牌
          let brandIds = this.data.query.brandIds.split(',')
          for(let i = 0;i<brandIds.length;i++){
              brandSelected[brandIds[i]] = true
          }
      } 
      this.setData({
          brandVisible:!this.data.brandVisible,
          brandSelected
      })
  },
  //获取品牌列表
  getBrands(){
      wx.get('/brands').then(res =>{
          this.setData({
              brands:res
          })
      })
  },

  getList(next){
      wx.get('/products',this.data.query).then(res =>{
          console.log(res)
          res.rows.forEach((item,index) =>{
              item.img = wx.baseURL+item.productImgs.split(',')[0]
          })
          this.setData({
              total:res.total,
              rows:this.data.rows.concat(res.rows)
          })
          if(typeof next == 'function') next()
      })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
      console.log(options)
      this.setData({
         'query.key':options.key ||''
      })
      this.getBrands()
      this.getList()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
      this.refresh(() =>{
          wx.stopPullDownRefresh()

      })
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
 
      if(this.data.rows.length,this.data.total){
          this.data.query.pageNum ++
          this.getList()
      }

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})